Communication networks generally function to move data from a source to a destination through a network of nodes interconnected by point-to-point links. The links may be bi-directional communication paths between two connected nodes within the network. Data may be transmitted in packets and routed through intermediate nodes (e.g., routers and switches from a source to a destination in the network). Routing protocols implemented within the nodes of a network allow one or more components, devices, or modules of the node to correctly direct data to its appropriate next destination. The transmission of data from a source to a destination in a network may be part of a point-to-point communication in which the source is directing the transmission at a single destination. The transmission of data to a source may also be part of a multicast transmission in which the source is directing the transmission to multiple destinations.
Multicast traffic in a multicast transmission is implemented so that data packets are routed from one source through a network to multiple destinations using resources and bandwidth as efficiently as possible. This is done by transmitting single packets meant for multiple destinations on a single path through the network as far as possible and only replicating the packet for transmission on multiple paths to the multiple destinations when the network topology requires use of the multiple paths to reach the multiple destinations. As the multicast packets traverse the network, the network nodes replicate the packet only when necessary to pass it on to the multiple destinations.
In today's data center network topologies, which are mainly equal cost multipath (ECMP), multicast transmission is being used more and more, for more and more applications which include transmission of data for financial services, multimedia videos, etc. In ECMP, routing each path is assumed to incur the same cost as far as latency, congestion, etc., as compared to any other path when being assigned. Multicast networks commonly use a Shared Tree or a Shortest Path Tree multicast routing scheme. In Shortest Path multicast routing the multicast distribution tree is a source tree with its root at the source and branches forming a spanning tree through the network to the destination receivers. The shortest path routing scheme tree uses the shortest path through the network. In Shared Tree multicast routing, unlike shortest path, a shared tree uses a single common root placed at some chosen point in the network. This common shared root is called a Rendezvous Point (RP).
Shortest path and shared tree multicast transmission may be effected adversely because the data path assignments in those schemes are unpredictable from the viewpoint of data traffic congestion, latency, or other similar effects on a network. This unpredictability may cause, for example, congestion on one link of a transmission using shortest path or shared tree multicast transmission while another link in the network might be completely un-utilized.